昨天透過rancher幫助下完成了metric的必要工具,基於管理考量kubernetes內的grafana不會expose出來,真正讓SRE進行服務觀察的會由外部的grafana管理,內部的則是提供給istio使用。
先來一張圖介紹什麼是prometheus、grafana、alert manager、prometheus-operator
透過prometheus-operator是透過crd的方式自動的監看pod的變化並通知prometheus server資源要搜集的target list,這一部分實際的作業會透過更新rule file的方式讓prometheus能夠自動的發現新的resources,並由grafana將prometheus data的資訊用圖表的方式表現出來
在kubernetes內其實並沒有內建把服務expose出來,所以要從外部使用這些介面需要一些手段,今天先介紹最基本的port-foward的暫時性作法,之後會介紹如何透過ingress的方式讓外部能夠使用
kubectl --namespace cattle-monitoring-system port-forward service/rancher-monitoring-prometheus --address 0.0.0.0 9090
kubectl --namespace cattle-monitoring-system port-forward service/rancher-monitoring-grafana --address 0.0.0.0 80
kubectl --namespace cattle-monitoring-system port-forward service/rancher-monitoring-alertmanager --address 0.0.0.0 9093
上面三個指令分別可以讓人存取到prometheus(IP:9090/targets)、grafana(IP:80 預設帳號密碼admin / prom-operator)、alertmanager(IP:9093)。
有了expose的網址後,要在外部的grafana將prometheus做為來源資料庫搜集cluster的資訊
之後就可以透過這一台grafana做為多套的k8s cluster的統一監控平台囉。